#ifndef _COMMON_H
#define _COMMON_H

#include "../Utilities/UtilCommon.h"
#include "../LUALib/LuaCommon.h"

#include <psapi.h>
#pragma comment(lib, "psapi.lib")

using namespace luabind;

#include "MemoryReader.h"
#include "Localisation.h"
#include "ThreadPool.h"
#include "UpdateMask.h"
#include "WoWGuid.h"
#include "zlib.h"
#include "Opcodes.h"
#include "UpdateFields.h"
#include "TimedEvent.h"
#include "WorldPacket.h"
#include "Terrain.h"
#include "UseableStuff.h"
#include "SpellDefines.h"
#include "SpellHandler.h"
#include "QuestHandler.h"
#include "MiscManager.h"
#include "World.h"
#include "TaxiHandler.h"
#include "MapHandler.h"
#include "MapInterface.h"
#include "CommHandler.h"
#include "WorldSocket.h"
#include "ChatHandler.h"
#include "Session.h"
#include "MovementHandler.h"
#include "ScriptMgr.h"
#include "Object.h"
#include "GameObject.h"
#include "Unit.h"
#include "CreatureAI.h"
#include "Creature.h"
#include "WaypointInterface.h"
#include "Item.h"
#include "ItemInterface.h"
#include "CombatHandler.h"
#include "Player.h"
#include "LFGSystem.h"
#include "InterfaceHandler.h"
#include "ChatServerInterface.h"
#include "LUAPacket.h"
#include "LUAMisc.h"
#include "LUAPlayer.h"
#include "LUAUnit.h"
#include "LuaHookMgr.h"
#include "LuaEngine.h"
#include "CalendarHandler.h"

DLL_EXPORT extern CThreadPool ThreadPool;
DLL_EXPORT extern ConfigFile* world_config;
DLL_EXPORT extern Database* char_database;
DLL_EXPORT extern DBCStore<CharRaceEntry> dbcRaces;
DLL_EXPORT extern DBCStore<CharClassEntry> dbcClasses;
DLL_EXPORT extern DBCStore<Skilllineentry> dbcSkills;
DLL_EXPORT extern DBCStore<SpellEntry> dbcSpells;
DLL_EXPORT extern DBCStore<AreaEntry> dbcAreaTable;
DLL_EXPORT extern DBCStore<AreaGroup> dbcAreaGroup;
DLL_EXPORT extern DBCStore<SpellCastEntry> dbcSpellCasts;
DLL_EXPORT extern DBCStore<WorldZoneArea> dbcWorldZone;

#define CharacterDatabase (*char_database)

#endif